#ifndef MAPPERCOLORDREAMS_H
#define MAPPERCOLORDREAMS_H
#include "Mapper.h"

PNE_NAMESPACE_BEGIN

struct MapperColorDreams : public Mapper
{
    MapperColorDreams(Cartridge &cart, std::function<void(void)> mirroring_callback);
    NameTableMirroring GetNameTableMirroring();
    void WritePRG(Address addr, Byte value);
    Byte ReadPRG(Address addr);

    Byte ReadCHR(Address addr);
    void WriteCHR(Address addr, Byte value);

private:
    NameTableMirroring m_mirroring;
    uint32_t prgbank;
    uint32_t chrbank;
    std::function<void(void)> m_mirroringCallback;
};

PNE_NAMESPACE_END

#endif // MAPPERCOLORDREAMS_H
       // DONE